package mysql;

import com.mysql.jdbc.Statement;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/*
*   使用JDBC 连接  数据库 Mysql
*   1.maven仓库下载对应Mysql版本的jar包
*   2.mysql服务器必须启动【WampServer】
*   3.加载驱动数据库驱动【mysql】
*   4.获取数据库链接【mysql-用户名 root 最高权限：密码 空】
* 二 连接成功--CRUD  增加操作
*   1.test 库 创建表 person 给3个字符 id name  address
*
* */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 规矩标准 要求：链接对应数据库必须先注册‘驱动程序’
        //告诉JDBC 现在链接什么种类的数据库
        //Class.forName() 通过反射加载对应数据库版本驱动类
        //对应数据库固定注册写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql数据库的链接
        String username = "root"; //mysql数据库用户名
        String password = "";     //mysql数据库密码
        //url链接地址：mysql固定结构
        //jdbc:mysql://ip地址：端口号/库名？characterEncoding=UTF-8
        String url = "jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        //DriverManager 工具类，功能获取数据库链接：url，用户名和密码
        //getConnection 方法，链接不同版本数据库的方法,链接成功，返回Connection
        Connection conn =
                DriverManager.getConnection(url, username, password);
        System.out.println("测试链接是否成功" + conn);

        //5.编写静态添加sql操作【字符串】
        //String sql = "insert into person values(1,'wsw','haerbin')";
         //练习：增加3条数据，删除一条数据，修改一条数据
        //String sql="update person set name='书记'where id=1";
        String sql="update person set address='北京'where id=1";
        //6.执行静态sql【增加操作】
        //conn.createStatement() 执行数据库中增删改操作，返回值Statement对象
        //Statement对象执行静态sql
        //6.1具备执行数据库中增删改操作
        Statement st = (Statement) conn.createStatement();
        //6.2具备执行静态sql：增删改操作
        int rows = st.executeUpdate(sql);
        System.out.println("增加" + rows + "记录");
        //7.关闭资源
        st.close();
        conn.close();
/**
 *   昨天重点：
 *   1.JDBC规范     链接各种数据库   数据库闭源
 *   2.maven仓库下载对应jar包
 *     mysql版本 5.5 mysql jdbc
 *     oracle 版本 10g OJdbc8
 *   3.编程步骤--JDBC 规范
 *   3.1 加载驱动，JDBC 链接数据库，每个数据库都有自己驱动
 *    class.forName("com.mysql.jdbc.Driver") 反射技术【固定】
 *    mysql版本5，X  驱动：com.mysql.jdbc.Driver
 *    mysql版本8. X  驱动：com.mysql.cj.jdbc.Driver
 *    java-->JDBC标准规范-->Driver 接口:驱动接口，各种数据库
 *    JDBC承认写对应驱动接口【所有数据库承认你接口，确定什么数据库】
 *   3.2 获取链接，mysql数据库：用户名，密码，url用字符串接收
 *     String username="root";      ----java 写法
 *     String password="";
 *     url--->Mysql链接路径
 *     jdbc-->Mysql链接路径---固定路径
 *     jdbc：Mysql://localhost:3306/mi?characterEncoding=UTF-8
 *     协议:子协议://IP地址:端口号/库名?设置字符集
 *               本机
 *               127.0.0.1
 *     java获取链接--通过DriverManager接口：工具类，可以链接各种数据库
 *     DriverManager.getConnection(url,username,password);
 *     具体链接方案给方法：getConnection()地址，用户名，密码确认无误
 *     返回一个对象 Connection对象【java与对应数据库链接成功】
 *     打印Connection 对象--打印对象---链接成功
 *   4.执行sql：JDBC只能做CRUD增删改查--mysql创建表，库
 *   4.1 Mysql --> 使用库-->创建库
 *   4.2 java ---> CUD增改删操作
 *   4.3 java ---> 确定数据库链接成功【con】 --->调取执行增删改查操作
 *            ---> 返回Statement对象：执行静态sql
 *    代码：Statement st=con.createStatement();
 *   4.4 java -->Statement对象提供方法：executeUpdate();
 *            -->方法此方法sql：增，删，改操作---成功  几  条记录
 *     代码：int rows=st.executeUpdate(sql);
 *     打桩：打印成功多少条记录
 *   5.关闭资源【倒置法：Statement-执行sql对象、Connection--链接数据库成功对象】
 *
 */


    }
}
